#ifndef MOREPACKET_HH
#define MOREPACKET_HH

CLICK_DECLS

/**
 * Common for MORE DATA and ACK.
 */
 /// FIXME: these SHOULD BE in network byte order

const int MAX_DST = 32; // up to 32 destinations in multicast group
CLICK_SIZE_PACKED_STRUCTURE(struct more_pkt {,
    // FIXME: no flow identification here, nodes know their roles
    uint32_t _batch;  // batch seqno
    uint32_t _dstmap; // each bit indicates that the particular dst is active, the sink must know its index into this map
    // note if _dstmap == 0 then it functions as an ACK for _batch
});

CLICK_SIZE_PACKED_STRUCTURE(struct more_data {,
    uint32_t _metric; // metric from src, used only for credit distribution
    uint32_t _tx; // unique identification just for debugging
});

/* before more_pkt there is the click_wifi LLC header and the athdesc */
#define MORE_HEADROOM 64

CLICK_ENDDECLS

#endif //MOREPACKET_HH
